
package es.ucm.disia.xsdp.util;

public class Buffer
{
	public boolean disponible;
	public String token;
	
	public Buffer()
	{
		this.disponible = false;
		this.token="";
	}

	public synchronized void pon(String token)
	{
		try
		{
			//System.out.println("pon " + token + " disponible " + disponible);
			while (disponible)
				wait();
			this.token = token;
			disponible = true;
			notify();
		}
		catch (Exception e)
		{
			e.printStackTrace();
			System.exit(0);
		}
	}

	public synchronized String toma()
	{
		String t;
		try
		{
			//System.out.println("toma " + disponible + " disponible");			
			while (!disponible)
				wait();
			t = token;
			disponible = false;
			notify();
			System.out.println(t);
			return t;
		}
		catch (Exception e)
		{
			e.printStackTrace();
			System.exit(0);
			return null;
		}
	}
}
